const express = require('express');
const app = express();
//导入node.js 内置的querystring模块
const qs = require('querystring');

app.use((req,res,next) => { 
    //定义中间件具体的业务逻辑
    //1、定义一个str，专门用来存储客户端发过来的请求体数据
    let str = '';
    //2、监听req的data事件，当客户端发送请求体数据时，会触发
    req.on('data', (chunk) => {
      str += chunk;
    })
    //3、监听req的end事件，当客户端发送请求体数据结束时，会触发
    req.on('end', () => {
        //在str中存放的是完整的请求体数据
        //console.log(str);
        //todo 把字符串格式的请求体数据，解析成对象格式
        const body = qs.parse(str);
        //console.log(body);
        req.body = body;
        next();
    })
})

app.post('/user', (req, res) => {
  res.send(req.body);
});

app.listen(80, () => {
  console.log('express server running at http://127.0.0.1');
});